package com.shuwen.gcdj.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * <p>@author xuqm</p>
 *
 * @since 2019-11-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class OaUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @JSONField(name = "UserID")
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 钉钉ID
     */
    private String ddUserId;

    /**
     * 姓名
     */
    @JSONField(name = "UserName")
    private String name;

    /**
     * 性别：-1女 1男 0未填写 默认为0
     */
    @JSONField(name = "Gender")
    private int gendar;

    /**
     * 用户邮箱
     */
    @JSONField(name = "Email")
    private String email;

    /**
     * 用户手机
     */
    @JSONField(name = "Mobile")
    private String mobile;

    /**
     * 头像链接
     */
    private String imageUrl;

    /**
     * 账号
     */
    @JSONField(name = "Code")
    private String code;

    /**
     * 密码
     */
    private String password;

    /**
     * 部门id
     */
    @JSONField(name = "DeptId")
    private String deptId;

    /**
     * 是否禁用：0未禁用 1OA禁用 2CRM禁用 默认为0
     */
    @JSONField(name = "State")
    private int forbidden;

    /**
     * OA是否禁用：0未禁用 1OA禁用 默认为0
     */
    private int oaForbidden;

    /**
     * 用户类型 0内部员工 1CRM自建用户 默认为0
     */
    private int type;

    /**
     * 最近登陆时间
     */
    private LocalDateTime lastLoginTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 客户数上限 默认为0
     */
    private int customMax;

    /**
     * 创建人ID
     */
    @TableField(fill = FieldFill.INSERT)
    private String creator;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新人ID
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updater;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 业务城市（办公室）ID
     */
    private String areaCityId;

    /**
     * 区域城市名称
     */
    private String areaCityName;

    /**
     * 是否删除 0否 1是 默认为0
     */
    @TableLogic
    private Boolean isDelete;

    /**
     * 所属区域ID
     */
    private String areaId;

    /**
     * 所属大区名称
     */
    private String areaName;

    /**
     * 密码加盐
     */
    private String salt;

    /**
     * 乐观锁
     */
    @Version
    private Integer version;
}
